#include "mysqrt.h"

#include <iostream>

namespace mathfunctions {
    namespace detail {
        // a hack square root calculation using simple operations
        double mysqrt(double x)
        {
            std::cout << "mysqrt" << std::endl;

          if (x <= 0) {
            return 0;
          }

          double result = x;

          // do ten iterations
          for (int i = 0; i < 10; ++i) {
            if (result <= 0) {
              result = 0.1;
            }
            double delta = x - (result * result);
            result = result + 0.5 * delta / result;
            std::cout << "Computing sqrt of " << x << " to be " << result << std::endl;
          }
          return result;
        }
    }
}
